#pragma once

#include "stream/IOpenable.h"


namespace stream {

namespace meta {
	class Size;
}

class Meta : public ::stream::IOpenable {
public:

	Meta(meta::Size * size = nullptr);
	virtual ~Meta();

	void size(meta::Size * sz){ _size = sz; }

	meta::Size & size();

protected:
	bool _open()override;
	void _close() override;

private:
	meta::Size * _size;
};

}//end namespace stream

//Meta * meta = new impl::rocksdb::Meta(db);
//meta->open();
//
//meta->size().load(); //load to mem
//meta->size().store(); // store to db
//
//meta->size().inc();
//meta->size().dec();
//
//meta->size().set(10);
//size_t s = meta->size().get();
//
//meta->close();
//delete meta;
